// @ts-nocheck
/**
 * 获取设备id
 * 在用户未登录的情况下最大限度标明用户唯一身份
 * 注：此文件为 fingerprintjs[https://github.com/fingerprintjs/fingerprintjs] v3.4.1 离线版本
 */
/**
 * FingerprintJS v3.4.1 - Copyright (c) FingerprintJS, Inc, 2023 (https://fingerprint.com)
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
 *
 * This software contains code from open-source projects:
 * MurmurHash3 by Karan Lyons (https://github.com/karanlyons/murmurHash3.js)
 */
let e = function () {
  return (
    (e =
      Object.assign ||
      function (e) {
        for (var n, t = 1, r = arguments.length; t < r; t++)
          for (const o in (n = arguments[t]))
            Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o])
        return e
      }),
    e.apply(this, arguments)
  )
}
function n(e, n, t, r) {
  return new (t || (t = Promise))(function (o, a) {
    function i(e) {
      try {
        u(r.next(e))
      } catch (n) {
        a(n)
      }
    }
    function c(e) {
      try {
        u(r.throw(e))
      } catch (n) {
        a(n)
      }
    }
    function u(e) {
      let n
      e.done
        ? o(e.value)
        : ((n = e.value),
          n instanceof t
            ? n
            : new t(function (e) {
                e(n)
              })).then(i, c)
    }
    u((r = r.apply(e, n || [])).next())
  })
}
function t(e, n) {
  let t,
    r,
    o,
    a,
    i = {
      label: 0,
      sent: function () {
        if (1 & o[0]) throw o[1]
        return o[1]
      },
      trys: [],
      ops: []
    }
  return (
    (a = { next: c(0), throw: c(1), return: c(2) }),
    'function' == typeof Symbol &&
      (a[Symbol.iterator] = function () {
        return this
      }),
    a
  )
  function c(c) {
    return function (u) {
      return (function (c) {
        if (t) throw new TypeError('Generator is already executing.')
        for (; a && ((a = 0), c[0] && (i = 0)), i; )
          try {
            if (
              ((t = 1),
              r &&
                (o =
                  2 & c[0]
                    ? r.return
                    : c[0]
                    ? r.throw || ((o = r.return) && o.call(r), 0)
                    : r.next) &&
                !(o = o.call(r, c[1])).done)
            )
              return o
            switch (((r = 0), o && (c = [2 & c[0], o.value]), c[0])) {
              case 0:
              case 1:
                o = c
                break
              case 4:
                return i.label++, { value: c[1], done: !1 }
              case 5:
                i.label++, (r = c[1]), (c = [0])
                continue
              case 7:
                ;(c = i.ops.pop()), i.trys.pop()
                continue
              default:
                if (
                  !((o = i.trys),
                  (o = o.length > 0 && o[o.length - 1]) ||
                    (6 !== c[0] && 2 !== c[0]))
                ) {
                  i = 0
                  continue
                }
                if (3 === c[0] && (!o || (c[1] > o[0] && c[1] < o[3]))) {
                  i.label = c[1]
                  break
                }
                if (6 === c[0] && i.label < o[1]) {
                  ;(i.label = o[1]), (o = c)
                  break
                }
                if (o && i.label < o[2]) {
                  ;(i.label = o[2]), i.ops.push(c)
                  break
                }
                o[2] && i.ops.pop(), i.trys.pop()
                continue
            }
            c = n.call(e, i)
          } catch (u) {
            ;(c = [6, u]), (r = 0)
          } finally {
            t = o = 0
          }
        if (5 & c[0]) throw c[1]
        return { value: c[0] ? c[1] : void 0, done: !0 }
      })([c, u])
    }
  }
}
function r(e, n, t) {
  if (t || 2 === arguments.length)
    for (var r, o = 0, a = n.length; o < a; o++)
      (!r && o in n) ||
        (r || (r = Array.prototype.slice.call(n, 0, o)), (r[o] = n[o]))
  return e.concat(r || Array.prototype.slice.call(n))
}
function o(e, n) {
  return new Promise(function (t) {
    return setTimeout(t, e, n)
  })
}
function a(e) {
  return !!e && 'function' == typeof e.then
}
function i(e, n) {
  try {
    const t = e()
    a(t)
      ? t.then(
          function (e) {
            return n(!0, e)
          },
          function (e) {
            return n(!1, e)
          }
        )
      : n(!0, t)
  } catch (r) {
    n(!1, r)
  }
}
function c(e, r, a) {
  return (
    void 0 === a && (a = 16),
    n(this, void 0, void 0, function () {
      let n, i, c
      return t(this, function (t) {
        switch (t.label) {
          case 0:
            ;(n = Date.now()), (i = 0), (t.label = 1)
          case 1:
            return i < e.length
              ? (r(e[i], i),
                (c = Date.now()) >= n + a ? ((n = c), [4, o(0)]) : [3, 3])
              : [3, 4]
          case 2:
            t.sent(), (t.label = 3)
          case 3:
            return ++i, [3, 1]
          case 4:
            return [2]
        }
      })
    })
  )
}
function u(e) {
  e.then(void 0, function () {})
}
function l(e, n) {
  ;(e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]),
    (n = [n[0] >>> 16, 65535 & n[0], n[1] >>> 16, 65535 & n[1]])
  const t = [0, 0, 0, 0]
  return (
    (t[3] += e[3] + n[3]),
    (t[2] += t[3] >>> 16),
    (t[3] &= 65535),
    (t[2] += e[2] + n[2]),
    (t[1] += t[2] >>> 16),
    (t[2] &= 65535),
    (t[1] += e[1] + n[1]),
    (t[0] += t[1] >>> 16),
    (t[1] &= 65535),
    (t[0] += e[0] + n[0]),
    (t[0] &= 65535),
    [(t[0] << 16) | t[1], (t[2] << 16) | t[3]]
  )
}
function s(e, n) {
  ;(e = [e[0] >>> 16, 65535 & e[0], e[1] >>> 16, 65535 & e[1]]),
    (n = [n[0] >>> 16, 65535 & n[0], n[1] >>> 16, 65535 & n[1]])
  const t = [0, 0, 0, 0]
  return (
    (t[3] += e[3] * n[3]),
    (t[2] += t[3] >>> 16),
    (t[3] &= 65535),
    (t[2] += e[2] * n[3]),
    (t[1] += t[2] >>> 16),
    (t[2] &= 65535),
    (t[2] += e[3] * n[2]),
    (t[1] += t[2] >>> 16),
    (t[2] &= 65535),
    (t[1] += e[1] * n[3]),
    (t[0] += t[1] >>> 16),
    (t[1] &= 65535),
    (t[1] += e[2] * n[2]),
    (t[0] += t[1] >>> 16),
    (t[1] &= 65535),
    (t[1] += e[3] * n[1]),
    (t[0] += t[1] >>> 16),
    (t[1] &= 65535),
    (t[0] += e[0] * n[3] + e[1] * n[2] + e[2] * n[1] + e[3] * n[0]),
    (t[0] &= 65535),
    [(t[0] << 16) | t[1], (t[2] << 16) | t[3]]
  )
}
function d(e, n) {
  return 32 === (n %= 64)
    ? [e[1], e[0]]
    : n < 32
    ? [(e[0] << n) | (e[1] >>> (32 - n)), (e[1] << n) | (e[0] >>> (32 - n))]
    : ((n -= 32),
      [(e[1] << n) | (e[0] >>> (32 - n)), (e[0] << n) | (e[1] >>> (32 - n))])
}
function m(e, n) {
  return 0 === (n %= 64)
    ? e
    : n < 32
    ? [(e[0] << n) | (e[1] >>> (32 - n)), e[1] << n]
    : [e[1] << (n - 32), 0]
}
function f(e, n) {
  return [e[0] ^ n[0], e[1] ^ n[1]]
}
function v(e) {
  return (
    (e = f(e, [0, e[0] >>> 1])),
    (e = f((e = s(e, [4283543511, 3981806797])), [0, e[0] >>> 1])),
    (e = f((e = s(e, [3301882366, 444984403])), [0, e[0] >>> 1]))
  )
}
function h(e, n) {
  n = n || 0
  let t,
    r = (e = e || '').length % 16,
    o = e.length - r,
    a = [0, n],
    i = [0, n],
    c = [0, 0],
    u = [0, 0],
    h = [2277735313, 289559509],
    b = [1291169091, 658871167]
  for (t = 0; t < o; t += 16)
    (c = [
      (255 & e.charCodeAt(t + 4)) |
        ((255 & e.charCodeAt(t + 5)) << 8) |
        ((255 & e.charCodeAt(t + 6)) << 16) |
        ((255 & e.charCodeAt(t + 7)) << 24),
      (255 & e.charCodeAt(t)) |
        ((255 & e.charCodeAt(t + 1)) << 8) |
        ((255 & e.charCodeAt(t + 2)) << 16) |
        ((255 & e.charCodeAt(t + 3)) << 24)
    ]),
      (u = [
        (255 & e.charCodeAt(t + 12)) |
          ((255 & e.charCodeAt(t + 13)) << 8) |
          ((255 & e.charCodeAt(t + 14)) << 16) |
          ((255 & e.charCodeAt(t + 15)) << 24),
        (255 & e.charCodeAt(t + 8)) |
          ((255 & e.charCodeAt(t + 9)) << 8) |
          ((255 & e.charCodeAt(t + 10)) << 16) |
          ((255 & e.charCodeAt(t + 11)) << 24)
      ]),
      (c = d((c = s(c, h)), 31)),
      (a = l((a = d((a = f(a, (c = s(c, b)))), 27)), i)),
      (a = l(s(a, [0, 5]), [0, 1390208809])),
      (u = d((u = s(u, b)), 33)),
      (i = l((i = d((i = f(i, (u = s(u, h)))), 31)), a)),
      (i = l(s(i, [0, 5]), [0, 944331445]))
  switch (((c = [0, 0]), (u = [0, 0]), r)) {
    case 15:
      u = f(u, m([0, e.charCodeAt(t + 14)], 48))
    case 14:
      u = f(u, m([0, e.charCodeAt(t + 13)], 40))
    case 13:
      u = f(u, m([0, e.charCodeAt(t + 12)], 32))
    case 12:
      u = f(u, m([0, e.charCodeAt(t + 11)], 24))
    case 11:
      u = f(u, m([0, e.charCodeAt(t + 10)], 16))
    case 10:
      u = f(u, m([0, e.charCodeAt(t + 9)], 8))
    case 9:
      ;(u = s((u = f(u, [0, e.charCodeAt(t + 8)])), b)),
        (i = f(i, (u = s((u = d(u, 33)), h))))
    case 8:
      c = f(c, m([0, e.charCodeAt(t + 7)], 56))
    case 7:
      c = f(c, m([0, e.charCodeAt(t + 6)], 48))
    case 6:
      c = f(c, m([0, e.charCodeAt(t + 5)], 40))
    case 5:
      c = f(c, m([0, e.charCodeAt(t + 4)], 32))
    case 4:
      c = f(c, m([0, e.charCodeAt(t + 3)], 24))
    case 3:
      c = f(c, m([0, e.charCodeAt(t + 2)], 16))
    case 2:
      c = f(c, m([0, e.charCodeAt(t + 1)], 8))
    case 1:
      ;(c = s((c = f(c, [0, e.charCodeAt(t)])), h)),
        (a = f(a, (c = s((c = d(c, 31)), b))))
  }
  return (
    (a = l((a = f(a, [0, e.length])), (i = f(i, [0, e.length])))),
    (i = l(i, a)),
    (a = l((a = v(a)), (i = v(i)))),
    (i = l(i, a)),
    ('00000000' + (a[0] >>> 0).toString(16)).slice(-8) +
      ('00000000' + (a[1] >>> 0).toString(16)).slice(-8) +
      ('00000000' + (i[0] >>> 0).toString(16)).slice(-8) +
      ('00000000' + (i[1] >>> 0).toString(16)).slice(-8)
  )
}
function b(e) {
  return parseInt(e)
}
function p(e) {
  return parseFloat(e)
}
function y(e, n) {
  return 'number' == typeof e && isNaN(e) ? n : e
}
function g(e) {
  return e.reduce(function (e, n) {
    return e + (n ? 1 : 0)
  }, 0)
}
function w(e, n) {
  if ((void 0 === n && (n = 1), Math.abs(n) >= 1)) return Math.round(e / n) * n
  const t = 1 / n
  return Math.round(e * t) / t
}
function L(e) {
  return e && 'object' == typeof e && 'message' in e ? e : { message: e }
}
function k(e) {
  return 'function' != typeof e
}
function V(e, r, a) {
  const l = Object.keys(e).filter(function (e) {
      return !(function (e, n) {
        for (let t = 0, r = e.length; t < r; ++t) if (e[t] === n) return !0
        return !1
      })(a, e)
    }),
    s = Array(l.length)
  return (
    c(l, function (n, t) {
      s[t] = (function (e, n) {
        const t = new Promise(function (t) {
          const r = Date.now()
          i(e.bind(null, n), function () {
            for (var e = [], n = 0; n < arguments.length; n++)
              e[n] = arguments[n]
            const o = Date.now() - r
            if (!e[0])
              return t(function () {
                return { error: L(e[1]), duration: o }
              })
            const a = e[1]
            if (k(a))
              return t(function () {
                return { value: a, duration: o }
              })
            t(function () {
              return new Promise(function (e) {
                const n = Date.now()
                i(a, function () {
                  for (var t = [], r = 0; r < arguments.length; r++)
                    t[r] = arguments[r]
                  const a = o + Date.now() - n
                  if (!t[0]) return e({ error: L(t[1]), duration: a })
                  e({ value: t[1], duration: a })
                })
              })
            })
          })
        })
        return (
          u(t),
          function () {
            return t.then(function (e) {
              return e()
            })
          }
        )
      })(e[n], r)
    }),
    function () {
      return n(this, void 0, void 0, function () {
        let e, n, r, a, i, d
        return t(this, function (m) {
          switch (m.label) {
            case 0:
              for (e = {}, n = 0, r = l; n < r.length; n++)
                (a = r[n]), (e[a] = void 0)
              ;(i = Array(l.length)),
                (d = function () {
                  let n
                  return t(this, function (t) {
                    switch (t.label) {
                      case 0:
                        return (
                          (n = !0),
                          [
                            4,
                            c(l, function (t, r) {
                              if (!i[r])
                                if (s[r]) {
                                  const o = s[r]().then(function (n) {
                                    return (e[t] = n)
                                  })
                                  u(o), (i[r] = o)
                                } else n = !1
                            })
                          ]
                        )
                      case 1:
                        return t.sent(), n ? [2, 'break'] : [4, o(1)]
                      case 2:
                        return t.sent(), [2]
                    }
                  })
                }),
                (m.label = 1)
            case 1:
              return [5, d()]
            case 2:
              if ('break' === m.sent()) return [3, 4]
              m.label = 3
            case 3:
              return [3, 1]
            case 4:
              return [4, Promise.all(i)]
            case 5:
              return m.sent(), [2, e]
          }
        })
      })
    }
  )
}
function W(e, n) {
  const t = function (e) {
    return k(e)
      ? n(e)
      : function () {
          const t = e()
          return a(t) ? t.then(n) : n(t)
        }
  }
  return function (n) {
    const r = e(n)
    return a(r) ? r.then(t) : t(r)
  }
}
function Z() {
  const e = window,
    n = navigator
  return (
    g([
      'MSCSSMatrix' in e,
      'msSetImmediate' in e,
      'msIndexedDB' in e,
      'msMaxTouchPoints' in n,
      'msPointerEnabled' in n
    ]) >= 4
  )
}
function S() {
  const e = window,
    n = navigator
  return (
    g([
      'msWriteProfilerMark' in e,
      'MSStream' in e,
      'msLaunchUri' in n,
      'msSaveBlob' in n
    ]) >= 3 && !Z()
  )
}
function X() {
  const e = window,
    n = navigator
  return (
    g([
      'webkitPersistentStorage' in n,
      'webkitTemporaryStorage' in n,
      0 === n.vendor.indexOf('Google'),
      'webkitResolveLocalFileSystemURL' in e,
      'BatteryManager' in e,
      'webkitMediaStream' in e,
      'webkitSpeechGrammar' in e
    ]) >= 5
  )
}
function x() {
  const e = window,
    n = navigator
  return (
    g([
      'ApplePayError' in e,
      'CSSPrimitiveValue' in e,
      'Counter' in e,
      0 === n.vendor.indexOf('Apple'),
      'getStorageUpdates' in n,
      'WebKitMediaKeys' in e
    ]) >= 4
  )
}
function F() {
  const e = window
  return (
    g([
      'safari' in e,
      !('DeviceMotionEvent' in e),
      !('ongestureend' in e),
      !('standalone' in navigator)
    ]) >= 3
  )
}
function Y() {
  let e,
    n,
    t = window
  return (
    g([
      'buildID' in navigator,
      'MozAppearance' in
        (null !==
          (n =
            null === (e = document.documentElement) || void 0 === e
              ? void 0
              : e.style) && void 0 !== n
          ? n
          : {}),
      'onmozfullscreenchange' in t,
      'mozInnerScreenX' in t,
      'CSSMozDocumentRule' in t,
      'CanvasCaptureMediaStream' in t
    ]) >= 4
  )
}
function C() {
  const e = document
  return (
    e.fullscreenElement ||
    e.msFullscreenElement ||
    e.mozFullScreenElement ||
    e.webkitFullscreenElement ||
    null
  )
}
function R() {
  const e = X(),
    n = Y()
  if (!e && !n) return !1
  const t = window
  return (
    g([
      'onorientationchange' in t,
      'orientation' in t,
      e && !('SharedWorker' in t),
      n && /android/i.test(navigator.appVersion)
    ]) >= 2
  )
}
function G(e) {
  const n = new Error(e)
  return (n.name = e), n
}
function M(e, r, a) {
  let i, c, u
  return (
    void 0 === a && (a = 50),
    n(this, void 0, void 0, function () {
      let n, l
      return t(this, function (t) {
        switch (t.label) {
          case 0:
            ;(n = document), (t.label = 1)
          case 1:
            return n.body ? [3, 3] : [4, o(a)]
          case 2:
            return t.sent(), [3, 1]
          case 3:
            ;(l = n.createElement('iframe')), (t.label = 4)
          case 4:
            return (
              t.trys.push([4, , 10, 11]),
              [
                4,
                new Promise(function (e, t) {
                  let o = !1,
                    a = function () {
                      ;(o = !0), e()
                    }
                  ;(l.onload = a),
                    (l.onerror = function (e) {
                      ;(o = !0), t(e)
                    })
                  const i = l.style
                  i.setProperty('display', 'block', 'important'),
                    (i.position = 'absolute'),
                    (i.top = '0'),
                    (i.left = '0'),
                    (i.visibility = 'hidden'),
                    r && 'srcdoc' in l
                      ? (l.srcdoc = r)
                      : (l.src = 'about:blank'),
                    n.body.appendChild(l)
                  const c = function () {
                    let e, n
                    o ||
                      ('complete' ===
                      (null ===
                        (n =
                          null === (e = l.contentWindow) || void 0 === e
                            ? void 0
                            : e.document) || void 0 === n
                        ? void 0
                        : n.readyState)
                        ? a()
                        : setTimeout(c, 10))
                  }
                  c()
                })
              ]
            )
          case 5:
            t.sent(), (t.label = 6)
          case 6:
            return (
              null ===
                (c =
                  null === (i = l.contentWindow) || void 0 === i
                    ? void 0
                    : i.document) || void 0 === c
                ? void 0
                : c.body
            )
              ? [3, 8]
              : [4, o(a)]
          case 7:
            return t.sent(), [3, 6]
          case 8:
            return [4, e(l, l.contentWindow)]
          case 9:
            return [2, t.sent()]
          case 10:
            return (
              null === (u = l.parentNode) || void 0 === u || u.removeChild(l),
              [7]
            )
          case 11:
            return [2]
        }
      })
    })
  )
}
function I(e) {
  for (
    var n = (function (e) {
        for (
          var n,
            t,
            r = "Unexpected syntax '".concat(e, "'"),
            o = /^\s*([a-z-]*)(.*)$/i.exec(e),
            a = o[1] || void 0,
            i = {},
            c = /([.:#][\w-]+|\[.+?\])/gi,
            u = function (e, n) {
              ;(i[e] = i[e] || []), i[e].push(n)
            };
          ;

        ) {
          const l = c.exec(o[2])
          if (!l) break
          const s = l[0]
          switch (s[0]) {
            case '.':
              u('class', s.slice(1))
              break
            case '#':
              u('id', s.slice(1))
              break
            case '[':
              var d =
                /^\[([\w-]+)([~|^$*]?=("(.*?)"|([\w-]+)))?(\s+[is])?\]$/.exec(s)
              if (!d) throw new Error(r)
              u(
                d[1],
                null !== (t = null !== (n = d[4]) && void 0 !== n ? n : d[5]) &&
                  void 0 !== t
                  ? t
                  : ''
              )
              break
            default:
              throw new Error(r)
          }
        }
        return [a, i]
      })(e),
      t = n[0],
      r = n[1],
      o = document.createElement(null != t ? t : 'div'),
      a = 0,
      i = Object.keys(r);
    a < i.length;
    a++
  ) {
    const c = i[a],
      u = r[c].join(' ')
    'style' === c ? j(o.style, u) : o.setAttribute(c, u)
  }
  return o
}
function j(e, n) {
  for (let t = 0, r = n.split(';'); t < r.length; t++) {
    const o = r[t],
      a = /^\s*([\w-]+)\s*:\s*(.+?)(\s*!([\w-]+))?\s*$/.exec(o)
    if (a) {
      const i = a[1],
        c = a[2],
        u = a[4]
      e.setProperty(i, c, u || '')
    }
  }
}
const A = ['monospace', 'sans-serif', 'serif'],
  J = [
    'sans-serif-thin',
    'ARNO PRO',
    'Agency FB',
    'Arabic Typesetting',
    'Arial Unicode MS',
    'AvantGarde Bk BT',
    'BankGothic Md BT',
    'Batang',
    'Bitstream Vera Sans Mono',
    'Calibri',
    'Century',
    'Century Gothic',
    'Clarendon',
    'EUROSTILE',
    'Franklin Gothic',
    'Futura Bk BT',
    'Futura Md BT',
    'GOTHAM',
    'Gill Sans',
    'HELV',
    'Haettenschweiler',
    'Helvetica Neue',
    'Humanst521 BT',
    'Leelawadee',
    'Letter Gothic',
    'Levenim MT',
    'Lucida Bright',
    'Lucida Sans',
    'Menlo',
    'MS Mincho',
    'MS Outlook',
    'MS Reference Specialty',
    'MS UI Gothic',
    'MT Extra',
    'MYRIAD PRO',
    'Marlett',
    'Meiryo UI',
    'Microsoft Uighur',
    'Minion Pro',
    'Monotype Corsiva',
    'PMingLiU',
    'Pristina',
    'SCRIPTINA',
    'Segoe UI Light',
    'Serifa',
    'SimHei',
    'Small Fonts',
    'Staccato222 BT',
    'TRAJAN PRO',
    'Univers CE 55 Medium',
    'Vrinda',
    'ZWAdobeF'
  ]
function H(e) {
  return e.toDataURL()
}
let N, P
function z() {
  const e = this
  return (
    (function () {
      if (void 0 === P) {
        const e = function () {
          const n = D()
          E(n) ? (P = setTimeout(e, 2500)) : ((N = n), (P = void 0))
        }
        e()
      }
    })(),
    function () {
      return n(e, void 0, void 0, function () {
        let e
        return t(this, function (n) {
          switch (n.label) {
            case 0:
              return E((e = D()))
                ? N
                  ? [2, r([], N, !0)]
                  : C()
                  ? [
                      4,
                      ((t = document),
                      (
                        t.exitFullscreen ||
                        t.msExitFullscreen ||
                        t.mozCancelFullScreen ||
                        t.webkitExitFullscreen
                      ).call(t))
                    ]
                  : [3, 2]
                : [3, 2]
            case 1:
              n.sent(), (e = D()), (n.label = 2)
            case 2:
              return E(e) || (N = e), [2, e]
          }
          let t
        })
      })
    }
  )
}
function D() {
  const e = screen
  return [
    y(p(e.availTop), null),
    y(p(e.width) - p(e.availWidth) - y(p(e.availLeft), 0), null),
    y(p(e.height) - p(e.availHeight) - y(p(e.availTop), 0), null),
    y(p(e.availLeft), null)
  ]
}
function E(e) {
  for (let n = 0; n < 4; ++n) if (e[n]) return !1
  return !0
}
function B(e) {
  let r
  return n(this, void 0, void 0, function () {
    let n, a, i, c, u, l, s
    return t(this, function (t) {
      switch (t.label) {
        case 0:
          for (
            n = document,
              a = n.createElement('div'),
              i = new Array(e.length),
              c = {},
              T(a),
              s = 0;
            s < e.length;
            ++s
          )
            (u = I(e[s])),
              T((l = n.createElement('div'))),
              l.appendChild(u),
              a.appendChild(l),
              (i[s] = u)
          t.label = 1
        case 1:
          return n.body ? [3, 3] : [4, o(50)]
        case 2:
          return t.sent(), [3, 1]
        case 3:
          n.body.appendChild(a)
          try {
            for (s = 0; s < e.length; ++s) i[s].offsetParent || (c[e[s]] = !0)
          } finally {
            null === (r = a.parentNode) || void 0 === r || r.removeChild(a)
          }
          return [2, c]
      }
    })
  })
}
function T(e) {
  e.style.setProperty('display', 'block', 'important')
}
function O(e) {
  return matchMedia('(inverted-colors: '.concat(e, ')')).matches
}
function _(e) {
  return matchMedia('(forced-colors: '.concat(e, ')')).matches
}
function Q(e) {
  return matchMedia('(prefers-contrast: '.concat(e, ')')).matches
}
function U(e) {
  return matchMedia('(prefers-reduced-motion: '.concat(e, ')')).matches
}
function K(e) {
  return matchMedia('(dynamic-range: '.concat(e, ')')).matches
}
const q = Math,
  $ = function () {
    return 0
  }
const ee = {
  default: [],
  apple: [{ font: '-apple-system-body' }],
  serif: [{ fontFamily: 'serif' }],
  sans: [{ fontFamily: 'sans-serif' }],
  mono: [{ fontFamily: 'monospace' }],
  min: [{ fontSize: '1px' }],
  system: [{ fontFamily: 'system-ui' }]
}
const ne = {
  fonts: function () {
    return M(function (e, n) {
      const t = n.document,
        r = t.body
      r.style.fontSize = '48px'
      const o = t.createElement('div'),
        a = {},
        i = {},
        c = function (e) {
          const n = t.createElement('span'),
            r = n.style
          return (
            (r.position = 'absolute'),
            (r.top = '0'),
            (r.left = '0'),
            (r.fontFamily = e),
            (n.textContent = 'mmMwWLliI0O&1'),
            o.appendChild(n),
            n
          )
        },
        u = A.map(c),
        l = (function () {
          for (
            var e = {},
              n = function (n) {
                e[n] = A.map(function (e) {
                  return (function (e, n) {
                    return c("'".concat(e, "',").concat(n))
                  })(n, e)
                })
              },
              t = 0,
              r = J;
            t < r.length;
            t++
          ) {
            n(r[t])
          }
          return e
        })()
      r.appendChild(o)
      for (let s = 0; s < A.length; s++)
        (a[A[s]] = u[s].offsetWidth), (i[A[s]] = u[s].offsetHeight)
      return J.filter(function (e) {
        return (
          (n = l[e]),
          A.some(function (e, t) {
            return n[t].offsetWidth !== a[e] || n[t].offsetHeight !== i[e]
          })
        )
      })
    })
  },
  domBlockers: function (e) {
    const r = (void 0 === e ? {} : e).debug
    return n(this, void 0, void 0, function () {
      let e, n, o, a, i
      return t(this, function (t) {
        switch (t.label) {
          case 0:
            return x() || R()
              ? ((c = atob),
                (e = {
                  abpIndo: [
                    '#Iklan-Melayang',
                    '#Kolom-Iklan-728',
                    '#SidebarIklan-wrapper',
                    c('YVt0aXRsZT0iN25hZ2EgcG9rZXIiIGld'),
                    '[title="ALIENBOLA" i]'
                  ],
                  abpvn: [
                    '#quangcaomb',
                    c('Lmlvc0Fkc2lvc0Fkcy1sYXlvdXQ='),
                    '.quangcao',
                    c('W2hyZWZePSJodHRwczovL3I4OC52bi8iXQ=='),
                    c('W2hyZWZePSJodHRwczovL3piZXQudm4vIl0=')
                  ],
                  adBlockFinland: [
                    '.mainostila',
                    c('LnNwb25zb3JpdA=='),
                    '.ylamainos',
                    c('YVtocmVmKj0iL2NsaWNrdGhyZ2guYXNwPyJd'),
                    c('YVtocmVmXj0iaHR0cHM6Ly9hcHAucmVhZHBlYWsuY29tL2FkcyJd')
                  ],
                  adBlockPersian: [
                    '#navbar_notice_50',
                    '.kadr',
                    'TABLE[width="140px"]',
                    '#divAgahi',
                    c('I2FkMl9pbmxpbmU=')
                  ],
                  adBlockWarningRemoval: [
                    '#adblock-honeypot',
                    '.adblocker-root',
                    '.wp_adblock_detect',
                    c('LmhlYWRlci1ibG9ja2VkLWFk'),
                    c('I2FkX2Jsb2NrZXI=')
                  ],
                  adGuardAnnoyances: [
                    'amp-embed[type="zen"]',
                    '.hs-sosyal',
                    '#cookieconsentdiv',
                    'div[class^="app_gdpr"]',
                    '.as-oil'
                  ],
                  adGuardBase: [
                    '.BetterJsPopOverlay',
                    c('I2FkXzMwMFgyNTA='),
                    c('I2Jhbm5lcmZsb2F0MjI='),
                    c('I2FkLWJhbm5lcg=='),
                    c('I2NhbXBhaWduLWJhbm5lcg==')
                  ],
                  adGuardChinese: [
                    c('LlppX2FkX2FfSA=='),
                    c('YVtocmVmKj0iL29kMDA1LmNvbSJd'),
                    c('YVtocmVmKj0iLmh0aGJldDM0LmNvbSJd'),
                    '.qq_nr_lad',
                    '#widget-quan'
                  ],
                  adGuardFrench: [
                    c('I2Jsb2NrLXZpZXdzLWFkcy1zaWRlYmFyLWJsb2NrLWJsb2Nr'),
                    '#pavePub',
                    c('LmFkLWRlc2t0b3AtcmVjdGFuZ2xl'),
                    '.mobile_adhesion',
                    '.widgetadv'
                  ],
                  adGuardGerman: [
                    c('LmJhbm5lcml0ZW13ZXJidW5nX2hlYWRfMQ=='),
                    c('LmJveHN0YXJ0d2VyYnVuZw=='),
                    c('LndlcmJ1bmcz'),
                    c(
                      'YVtocmVmXj0iaHR0cDovL3d3dy5laXMuZGUvaW5kZXgucGh0bWw/cmVmaWQ9Il0='
                    ),
                    c(
                      'YVtocmVmXj0iaHR0cHM6Ly93d3cudGlwaWNvLmNvbS8/YWZmaWxpYXRlSWQ9Il0='
                    )
                  ],
                  adGuardJapanese: [
                    '#kauli_yad_1',
                    c('YVtocmVmXj0iaHR0cDovL2FkMi50cmFmZmljZ2F0ZS5uZXQvIl0='),
                    c('Ll9wb3BJbl9pbmZpbml0ZV9hZA=='),
                    c('LmFkZ29vZ2xl'),
                    c('LmFkX3JlZ3VsYXIz')
                  ],
                  adGuardMobile: [
                    c('YW1wLWF1dG8tYWRz'),
                    c('LmFtcF9hZA=='),
                    'amp-embed[type="24smi"]',
                    '#mgid_iframe1',
                    c('I2FkX2ludmlld19hcmVh')
                  ],
                  adGuardRussian: [
                    c('YVtocmVmXj0iaHR0cHM6Ly9hZC5sZXRtZWFkcy5jb20vIl0='),
                    c('LnJlY2xhbWE='),
                    'div[id^="smi2adblock"]',
                    c('ZGl2W2lkXj0iQWRGb3hfYmFubmVyXyJd'),
                    c('I2FkX3NxdWFyZQ==')
                  ],
                  adGuardSocial: [
                    c(
                      'YVtocmVmXj0iLy93d3cuc3R1bWJsZXVwb24uY29tL3N1Ym1pdD91cmw9Il0='
                    ),
                    c('YVtocmVmXj0iLy90ZWxlZ3JhbS5tZS9zaGFyZS91cmw/Il0='),
                    '.etsy-tweet',
                    '#inlineShare',
                    '.popup-social'
                  ],
                  adGuardSpanishPortuguese: [
                    '#barraPublicidade',
                    '#Publicidade',
                    '#publiEspecial',
                    '#queTooltip',
                    c('W2hyZWZePSJodHRwOi8vYWRzLmdsaXNwYS5jb20vIl0=')
                  ],
                  adGuardTrackingProtection: [
                    '#qoo-counter',
                    c('YVtocmVmXj0iaHR0cDovL2NsaWNrLmhvdGxvZy5ydS8iXQ=='),
                    c(
                      'YVtocmVmXj0iaHR0cDovL2hpdGNvdW50ZXIucnUvdG9wL3N0YXQucGhwIl0='
                    ),
                    c('YVtocmVmXj0iaHR0cDovL3RvcC5tYWlsLnJ1L2p1bXAiXQ=='),
                    '#top100counter'
                  ],
                  adGuardTurkish: [
                    '#backkapat',
                    c('I3Jla2xhbWk='),
                    c('YVtocmVmXj0iaHR0cDovL2Fkc2Vydi5vbnRlay5jb20udHIvIl0='),
                    c('YVtocmVmXj0iaHR0cDovL2l6bGVuemkuY29tL2NhbXBhaWduLyJd'),
                    c('YVtocmVmXj0iaHR0cDovL3d3dy5pbnN0YWxsYWRzLm5ldC8iXQ==')
                  ],
                  bulgarian: [
                    c('dGQjZnJlZW5ldF90YWJsZV9hZHM='),
                    '#ea_intext_div',
                    '.lapni-pop-over',
                    '#xenium_hot_offers',
                    c('I25ld0Fk')
                  ],
                  easyList: [
                    c('I0FEX0NPTlRST0xfMjg='),
                    c('LnNlY29uZC1wb3N0LWFkcy13cmFwcGVy'),
                    '.universalboxADVBOX03',
                    c('LmFkdmVydGlzZW1lbnQtNzI4eDkw'),
                    c('LnNxdWFyZV9hZHM=')
                  ],
                  easyListChina: [
                    c('YVtocmVmKj0iLndlbnNpeHVldGFuZy5jb20vIl0='),
                    c('LmFwcGd1aWRlLXdyYXBbb25jbGljayo9ImJjZWJvcy5jb20iXQ=='),
                    c('LmZyb250cGFnZUFkdk0='),
                    '#taotaole',
                    '#aafoot.top_box'
                  ],
                  easyListCookie: [
                    '#AdaCompliance.app-notice',
                    '.text-center.rgpd',
                    '.panel--cookie',
                    '.js-cookies-andromeda',
                    '.elxtr-consent'
                  ],
                  easyListCzechSlovak: [
                    '#onlajny-stickers',
                    c('I3Jla2xhbW5pLWJveA=='),
                    c('LnJla2xhbWEtbWVnYWJvYXJk'),
                    '.sklik',
                    c('W2lkXj0ic2tsaWtSZWtsYW1hIl0=')
                  ],
                  easyListDutch: [
                    c('I2FkdmVydGVudGll'),
                    c('I3ZpcEFkbWFya3RCYW5uZXJCbG9jaw=='),
                    '.adstekst',
                    c('YVtocmVmXj0iaHR0cHM6Ly94bHR1YmUubmwvY2xpY2svIl0='),
                    '#semilo-lrectangle'
                  ],
                  easyListGermany: [
                    c('I0FkX1dpbjJkYXk='),
                    c('I3dlcmJ1bmdzYm94MzAw'),
                    c(
                      'YVtocmVmXj0iaHR0cDovL3d3dy5yb3RsaWNodGthcnRlaS5jb20vP3NjPSJd'
                    ),
                    c('I3dlcmJ1bmdfd2lkZXNreXNjcmFwZXJfc2NyZWVu'),
                    c(
                      'YVtocmVmXj0iaHR0cDovL2xhbmRpbmcucGFya3BsYXR6a2FydGVpLmNvbS8/YWc9Il0='
                    )
                  ],
                  easyListItaly: [
                    c('LmJveF9hZHZfYW5udW5jaQ=='),
                    '.sb-box-pubbliredazionale',
                    c(
                      'YVtocmVmXj0iaHR0cDovL2FmZmlsaWF6aW9uaWFkcy5zbmFpLml0LyJd'
                    ),
                    c('YVtocmVmXj0iaHR0cHM6Ly9hZHNlcnZlci5odG1sLml0LyJd'),
                    c(
                      'YVtocmVmXj0iaHR0cHM6Ly9hZmZpbGlhemlvbmlhZHMuc25haS5pdC8iXQ=='
                    )
                  ],
                  easyListLithuania: [
                    c('LnJla2xhbW9zX3RhcnBhcw=='),
                    c('LnJla2xhbW9zX251b3JvZG9z'),
                    c('aW1nW2FsdD0iUmVrbGFtaW5pcyBza3lkZWxpcyJd'),
                    c('aW1nW2FsdD0iRGVkaWt1b3RpLmx0IHNlcnZlcmlhaSJd'),
                    c('aW1nW2FsdD0iSG9zdGluZ2FzIFNlcnZlcmlhaS5sdCJd')
                  ],
                  estonian: [
                    c('QVtocmVmKj0iaHR0cDovL3BheTRyZXN1bHRzMjQuZXUiXQ==')
                  ],
                  fanboyAnnoyances: [
                    '#feedback-tab',
                    '#taboola-below-article',
                    '.feedburnerFeedBlock',
                    '.widget-feedburner-counter',
                    '[title="Subscribe to our blog"]'
                  ],
                  fanboyAntiFacebook: ['.util-bar-module-firefly-visible'],
                  fanboyEnhancedTrackers: [
                    '.open.pushModal',
                    '#issuem-leaky-paywall-articles-zero-remaining-nag',
                    '#sovrn_container',
                    'div[class$="-hide"][zoompage-fontsize][style="display: block;"]',
                    '.BlockNag__Card'
                  ],
                  fanboySocial: [
                    '.td-tags-and-social-wrapper-box',
                    '.twitterContainer',
                    '.youtube-social',
                    'a[title^="Like us on Facebook"]',
                    'img[alt^="Share on Digg"]'
                  ],
                  frellwitSwedish: [
                    c(
                      'YVtocmVmKj0iY2FzaW5vcHJvLnNlIl1bdGFyZ2V0PSJfYmxhbmsiXQ=='
                    ),
                    c('YVtocmVmKj0iZG9rdG9yLXNlLm9uZWxpbmsubWUiXQ=='),
                    'article.category-samarbete',
                    c('ZGl2LmhvbGlkQWRz'),
                    'ul.adsmodern'
                  ],
                  greekAdBlock: [
                    c('QVtocmVmKj0iYWRtYW4ub3RlbmV0LmdyL2NsaWNrPyJd'),
                    c(
                      'QVtocmVmKj0iaHR0cDovL2F4aWFiYW5uZXJzLmV4b2R1cy5nci8iXQ=='
                    ),
                    c(
                      'QVtocmVmKj0iaHR0cDovL2ludGVyYWN0aXZlLmZvcnRobmV0LmdyL2NsaWNrPyJd'
                    ),
                    'DIV.agores300',
                    'TABLE.advright'
                  ],
                  hungarian: [
                    '#cemp_doboz',
                    '.optimonk-iframe-container',
                    c('LmFkX19tYWlu'),
                    c('W2NsYXNzKj0iR29vZ2xlQWRzIl0='),
                    '#hirdetesek_box'
                  ],
                  iDontCareAboutCookies: [
                    '.alert-info[data-block-track*="CookieNotice"]',
                    '.ModuleTemplateCookieIndicator',
                    '.o--cookies--container',
                    '.cookie-msg-info-container',
                    '#cookies-policy-sticky'
                  ],
                  icelandicAbp: [
                    c(
                      'QVtocmVmXj0iL2ZyYW1ld29yay9yZXNvdXJjZXMvZm9ybXMvYWRzLmFzcHgiXQ=='
                    )
                  ],
                  latvian: [
                    c(
                      'YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiAxMjBweDsgaGVpZ2h0OiA0MHB4OyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7Il0='
                    ),
                    c(
                      'YVtocmVmPSJodHRwOi8vd3d3LnNhbGlkemluaS5sdi8iXVtzdHlsZT0iZGlzcGxheTogYmxvY2s7IHdpZHRoOiA4OHB4OyBoZWlnaHQ6IDMxcHg7IG92ZXJmbG93OiBoaWRkZW47IHBvc2l0aW9uOiByZWxhdGl2ZTsiXQ=='
                    )
                  ],
                  listKr: [
                    c('YVtocmVmKj0iLy9hZC5wbGFuYnBsdXMuY28ua3IvIl0='),
                    c('I2xpdmVyZUFkV3JhcHBlcg=='),
                    c('YVtocmVmKj0iLy9hZHYuaW1hZHJlcC5jby5rci8iXQ=='),
                    c('aW5zLmZhc3R2aWV3LWFk'),
                    '.revenue_unit_item.dable'
                  ],
                  listeAr: [
                    c('LmdlbWluaUxCMUFk'),
                    '.right-and-left-sponsers',
                    c('YVtocmVmKj0iLmFmbGFtLmluZm8iXQ=='),
                    c('YVtocmVmKj0iYm9vcmFxLm9yZyJd'),
                    c('YVtocmVmKj0iZHViaXp6bGUuY29tL2FyLz91dG1fc291cmNlPSJd')
                  ],
                  listeFr: [
                    c('YVtocmVmXj0iaHR0cDovL3Byb21vLnZhZG9yLmNvbS8iXQ=='),
                    c('I2FkY29udGFpbmVyX3JlY2hlcmNoZQ=='),
                    c('YVtocmVmKj0id2Vib3JhbWEuZnIvZmNnaS1iaW4vIl0='),
                    '.site-pub-interstitiel',
                    'div[id^="crt-"][data-criteo-id]'
                  ],
                  officialPolish: [
                    '#ceneo-placeholder-ceneo-12',
                    c('W2hyZWZePSJodHRwczovL2FmZi5zZW5kaHViLnBsLyJd'),
                    c(
                      'YVtocmVmXj0iaHR0cDovL2Fkdm1hbmFnZXIudGVjaGZ1bi5wbC9yZWRpcmVjdC8iXQ=='
                    ),
                    c(
                      'YVtocmVmXj0iaHR0cDovL3d3dy50cml6ZXIucGwvP3V0bV9zb3VyY2UiXQ=='
                    ),
                    c('ZGl2I3NrYXBpZWNfYWQ=')
                  ],
                  ro: [
                    c(
                      'YVtocmVmXj0iLy9hZmZ0cmsuYWx0ZXgucm8vQ291bnRlci9DbGljayJd'
                    ),
                    'a[href^="/magazin/"]',
                    c(
                      'YVtocmVmXj0iaHR0cHM6Ly9ibGFja2ZyaWRheXNhbGVzLnJvL3Ryay9zaG9wLyJd'
                    ),
                    c(
                      'YVtocmVmXj0iaHR0cHM6Ly9ldmVudC4ycGVyZm9ybWFudC5jb20vZXZlbnRzL2NsaWNrIl0='
                    ),
                    c('YVtocmVmXj0iaHR0cHM6Ly9sLnByb2ZpdHNoYXJlLnJvLyJd')
                  ],
                  ruAd: [
                    c('YVtocmVmKj0iLy9mZWJyYXJlLnJ1LyJd'),
                    c('YVtocmVmKj0iLy91dGltZy5ydS8iXQ=='),
                    c('YVtocmVmKj0iOi8vY2hpa2lkaWtpLnJ1Il0='),
                    '#pgeldiz',
                    '.yandex-rtb-block'
                  ],
                  thaiAds: [
                    'a[href*=macau-uta-popup]',
                    c('I2Fkcy1nb29nbGUtbWlkZGxlX3JlY3RhbmdsZS1ncm91cA=='),
                    c('LmFkczMwMHM='),
                    '.bumq',
                    '.img-kosana'
                  ],
                  webAnnoyancesUltralist: [
                    '#mod-social-share-2',
                    '#social-tools',
                    c('LmN0cGwtZnVsbGJhbm5lcg=='),
                    '.zergnet-recommend',
                    '.yt.btn-link.btn-md.btn'
                  ]
                }),
                (n = Object.keys(e)),
                [
                  4,
                  B(
                    (i = []).concat.apply(
                      i,
                      n.map(function (n) {
                        return e[n]
                      })
                    )
                  )
                ])
              : [2, void 0]
          case 1:
            return (
              (o = t.sent()),
              r &&
                (function (e, n) {
                  for (
                    var t = 'DOM blockers debug:\n```',
                      r = 0,
                      o = Object.keys(e);
                    r < o.length;
                    r++
                  ) {
                    const a = o[r]
                    t += '\n'.concat(a, ':')
                    for (let i = 0, c = e[a]; i < c.length; i++) {
                      const u = c[i]
                      t += '\n  '.concat(n[u] ? '🚫' : '➡️', ' ').concat(u)
                    }
                  }
                  console.log(''.concat(t, '\n```'))
                })(e, o),
              (a = n.filter(function (n) {
                const t = e[n]
                return (
                  g(
                    t.map(function (e) {
                      return o[e]
                    })
                  ) >
                  0.6 * t.length
                )
              })).sort(),
              [2, a]
            )
        }
        let c
      })
    })
  },
  fontPreferences: function () {
    return (function (e, n) {
      void 0 === n && (n = 4e3)
      return M(function (t, o) {
        const a = o.document,
          i = a.body,
          c = i.style
        ;(c.width = ''.concat(n, 'px')),
          (c.webkitTextSizeAdjust = c.textSizeAdjust = 'none'),
          X()
            ? (i.style.zoom = ''.concat(1 / o.devicePixelRatio))
            : x() && (i.style.zoom = 'reset')
        const u = a.createElement('div')
        return (
          (u.textContent = r([], Array((n / 20) << 0), !0)
            .map(function () {
              return 'word'
            })
            .join(' ')),
          i.appendChild(u),
          e(a, i)
        )
      })
      // 不能添加这个 head，否则会在延迟手动加载中报错
      // }, '<!doctype html><html><head><meta name="viewport" content="width=device-width, initial-scale=1">')
    })(function (e, n) {
      for (var t = {}, r = {}, o = 0, a = Object.keys(ee); o < a.length; o++) {
        var i = a[o],
          c = ee[i],
          u = c[0],
          l = void 0 === u ? {} : u,
          s = c[1],
          d = void 0 === s ? 'mmMwWLliI0fiflO&1' : s,
          m = e.createElement('span')
        ;(m.textContent = d), (m.style.whiteSpace = 'nowrap')
        for (let f = 0, v = Object.keys(l); f < v.length; f++) {
          const h = v[f],
            b = l[h]
          void 0 !== b && (m.style[h] = b)
        }
        ;(t[i] = m), n.appendChild(e.createElement('br')), n.appendChild(m)
      }
      for (let p = 0, y = Object.keys(ee); p < y.length; p++) {
        r[(i = y[p])] = t[i].getBoundingClientRect().width
      }
      return r
    })
  },
  audio: function () {
    const e = window,
      n = e.OfflineAudioContext || e.webkitOfflineAudioContext
    if (!n) return -2
    if (
      x() &&
      !F() &&
      !(function () {
        const e = window
        return (
          g([
            'DOMRectList' in e,
            'RTCPeerConnectionIceEvent' in e,
            'SVGGeometryElement' in e,
            'ontransitioncancel' in e
          ]) >= 3
        )
      })()
    )
      return -1
    const t = new n(1, 5e3, 44100),
      r = t.createOscillator()
    ;(r.type = 'triangle'), (r.frequency.value = 1e4)
    const o = t.createDynamicsCompressor()
    ;(o.threshold.value = -50),
      (o.knee.value = 40),
      (o.ratio.value = 12),
      (o.attack.value = 0),
      (o.release.value = 0.25),
      r.connect(o),
      o.connect(t.destination),
      r.start(0)
    const i = (function (e) {
        let n = 3,
          t = 500,
          r = 500,
          o = 5e3,
          i = function () {}
        return [
          new Promise(function (c, l) {
            let s = !1,
              d = 0,
              m = 0
            e.oncomplete = function (e) {
              return c(e.renderedBuffer)
            }
            const f = function () {
                setTimeout(function () {
                  return l(G('timeout'))
                }, Math.min(r, m + o - Date.now()))
              },
              v = function () {
                try {
                  const r = e.startRendering()
                  switch ((a(r) && u(r), e.state)) {
                    case 'running':
                      ;(m = Date.now()), s && f()
                      break
                    case 'suspended':
                      document.hidden || d++,
                        s && d >= n ? l(G('suspended')) : setTimeout(v, t)
                  }
                } catch (o) {
                  l(o)
                }
              }
            v(),
              (i = function () {
                s || ((s = !0), m > 0 && f())
              })
          }),
          i
        ]
      })(t),
      c = i[0],
      l = i[1],
      s = c.then(
        function (e) {
          return (function (e) {
            for (var n = 0, t = 0; t < e.length; ++t) n += Math.abs(e[t])
            return n
          })(e.getChannelData(0).subarray(4500))
        },
        function (e) {
          if ('timeout' === e.name || 'suspended' === e.name) return -3
          throw e
        }
      )
    return (
      u(s),
      function () {
        return l(), s
      }
    )
  },
  screenFrame: function () {
    const e = this,
      r = z()
    return function () {
      return n(e, void 0, void 0, function () {
        let e, n
        return t(this, function (t) {
          switch (t.label) {
            case 0:
              return [4, r()]
            case 1:
              return (
                (e = t.sent()),
                [
                  2,
                  [
                    (n = function (e) {
                      return null === e ? null : w(e, 10)
                    })(e[0]),
                    n(e[1]),
                    n(e[2]),
                    n(e[3])
                  ]
                ]
              )
          }
        })
      })
    }
  },
  osCpu: function () {
    return navigator.oscpu
  },
  languages: function () {
    let e,
      n = navigator,
      t = [],
      r = n.language || n.userLanguage || n.browserLanguage || n.systemLanguage
    if ((void 0 !== r && t.push([r]), Array.isArray(n.languages)))
      (X() &&
        g([
          !('MediaSettingsRange' in (e = window)),
          'RTCEncodedAudioFrame' in e,
          '' + e.Intl == '[object Intl]',
          '' + e.Reflect == '[object Reflect]'
        ]) >= 3) ||
        t.push(n.languages)
    else if ('string' == typeof n.languages) {
      const o = n.languages
      o && t.push(o.split(','))
    }
    return t
  },
  colorDepth: function () {
    return window.screen.colorDepth
  },
  deviceMemory: function () {
    return y(p(navigator.deviceMemory), void 0)
  },
  screenResolution: function () {
    const e = screen,
      n = function (e) {
        return y(b(e), null)
      },
      t = [n(e.width), n(e.height)]
    return t.sort().reverse(), t
  },
  hardwareConcurrency: function () {
    return y(b(navigator.hardwareConcurrency), void 0)
  },
  timezone: function () {
    let e,
      n = null === (e = window.Intl) || void 0 === e ? void 0 : e.DateTimeFormat
    if (n) {
      const t = new n().resolvedOptions().timeZone
      if (t) return t
    }
    let r,
      o =
        ((r = new Date().getFullYear()),
        -Math.max(
          p(new Date(r, 0, 1).getTimezoneOffset()),
          p(new Date(r, 6, 1).getTimezoneOffset())
        ))
    return 'UTC'.concat(o >= 0 ? '+' : '').concat(Math.abs(o))
  },
  sessionStorage: function () {
    try {
      return !!window.sessionStorage
    } catch (e) {
      return !0
    }
  },
  localStorage: function () {
    try {
      return !!window.localStorage
    } catch (e) {
      return !0
    }
  },
  indexedDB: function () {
    if (!Z() && !S())
      try {
        return !!window.indexedDB
      } catch (e) {
        return !0
      }
  },
  openDatabase: function () {
    return !!window.openDatabase
  },
  cpuClass: function () {
    return navigator.cpuClass
  },
  platform: function () {
    const e = navigator.platform
    return 'MacIntel' === e && x() && !F()
      ? (function () {
          if ('iPad' === navigator.platform) return !0
          const e = screen,
            n = e.width / e.height
          return (
            g([
              'MediaSource' in window,
              !!Element.prototype.webkitRequestFullscreen,
              n > 0.65 && n < 1.53
            ]) >= 2
          )
        })()
        ? 'iPad'
        : 'iPhone'
      : e
  },
  plugins: function () {
    const e = navigator.plugins
    if (e) {
      for (var n = [], t = 0; t < e.length; ++t) {
        const r = e[t]
        if (r) {
          for (var o = [], a = 0; a < r.length; ++a) {
            const i = r[a]
            o.push({ type: i.type, suffixes: i.suffixes })
          }
          n.push({ name: r.name, description: r.description, mimeTypes: o })
        }
      }
      return n
    }
  },
  canvas: function () {
    let e,
      n,
      t = !1,
      r = (function () {
        const e = document.createElement('canvas')
        return (e.width = 1), (e.height = 1), [e, e.getContext('2d')]
      })(),
      o = r[0],
      a = r[1]
    if (
      (function (e, n) {
        return !(!n || !e.toDataURL)
      })(o, a)
    ) {
      ;(t = (function (e) {
        return (
          e.rect(0, 0, 10, 10),
          e.rect(2, 2, 6, 6),
          !e.isPointInPath(5, 5, 'evenodd')
        )
      })(a)),
        (function (e, n) {
          ;(e.width = 240),
            (e.height = 60),
            (n.textBaseline = 'alphabetic'),
            (n.fillStyle = '#f60'),
            n.fillRect(100, 1, 62, 20),
            (n.fillStyle = '#069'),
            (n.font = '11pt "Times New Roman"')
          const t = 'Cwm fjordbank gly '.concat(
            String.fromCharCode(55357, 56835)
          )
          n.fillText(t, 2, 15),
            (n.fillStyle = 'rgba(102, 204, 0, 0.2)'),
            (n.font = '18pt Arial'),
            n.fillText(t, 4, 45)
        })(o, a)
      const i = H(o)
      i !== H(o)
        ? (e = n = 'unstable')
        : ((n = i),
          (function (e, n) {
            ;(e.width = 122),
              (e.height = 110),
              (n.globalCompositeOperation = 'multiply')
            for (
              let t = 0,
                r = [
                  ['#f2f', 40, 40],
                  ['#2ff', 80, 40],
                  ['#ff2', 60, 80]
                ];
              t < r.length;
              t++
            ) {
              const o = r[t],
                a = o[0],
                i = o[1],
                c = o[2]
              ;(n.fillStyle = a),
                n.beginPath(),
                n.arc(i, c, 40, 0, 2 * Math.PI, !0),
                n.closePath(),
                n.fill()
            }
            ;(n.fillStyle = '#f9c'),
              n.arc(60, 60, 60, 0, 2 * Math.PI, !0),
              n.arc(60, 60, 20, 0, 2 * Math.PI, !0),
              n.fill('evenodd')
          })(o, a),
          (e = H(o)))
    } else e = n = ''
    return { winding: t, geometry: e, text: n }
  },
  touchSupport: function () {
    let e,
      n = navigator,
      t = 0
    void 0 !== n.maxTouchPoints
      ? (t = b(n.maxTouchPoints))
      : void 0 !== n.msMaxTouchPoints && (t = n.msMaxTouchPoints)
    try {
      document.createEvent('TouchEvent'), (e = !0)
    } catch (r) {
      e = !1
    }
    return {
      maxTouchPoints: t,
      touchEvent: e,
      touchStart: 'ontouchstart' in window
    }
  },
  vendor: function () {
    return navigator.vendor || ''
  },
  vendorFlavors: function () {
    for (
      var e = [],
        n = 0,
        t = [
          'chrome',
          'safari',
          '__crWeb',
          '__gCrWeb',
          'yandex',
          '__yb',
          '__ybro',
          '__firefox__',
          '__edgeTrackingPreventionStatistics',
          'webkit',
          'oprt',
          'samsungAr',
          'ucweb',
          'UCShellJava',
          'puffinDevice'
        ];
      n < t.length;
      n++
    ) {
      const r = t[n],
        o = window[r]
      o && 'object' == typeof o && e.push(r)
    }
    return e.sort()
  },
  cookiesEnabled: function () {
    const e = document
    try {
      e.cookie = 'cookietest=1; SameSite=Strict;'
      const n = -1 !== e.cookie.indexOf('cookietest=')
      return (
        (e.cookie =
          'cookietest=1; SameSite=Strict; expires=Thu, 01-Jan-1970 00:00:01 GMT'),
        n
      )
    } catch (t) {
      return !1
    }
  },
  colorGamut: function () {
    for (let e = 0, n = ['rec2020', 'p3', 'srgb']; e < n.length; e++) {
      const t = n[e]
      if (matchMedia('(color-gamut: '.concat(t, ')')).matches) return t
    }
  },
  invertedColors: function () {
    return !!O('inverted') || (!O('none') && void 0)
  },
  forcedColors: function () {
    return !!_('active') || (!_('none') && void 0)
  },
  monochrome: function () {
    if (matchMedia('(min-monochrome: 0)').matches) {
      for (let e = 0; e <= 100; ++e)
        if (matchMedia('(max-monochrome: '.concat(e, ')')).matches) return e
      throw new Error('Too high value')
    }
  },
  contrast: function () {
    return Q('no-preference')
      ? 0
      : Q('high') || Q('more')
      ? 1
      : Q('low') || Q('less')
      ? -1
      : Q('forced')
      ? 10
      : void 0
  },
  reducedMotion: function () {
    return !!U('reduce') || (!U('no-preference') && void 0)
  },
  hdr: function () {
    return !!K('high') || (!K('standard') && void 0)
  },
  math: function () {
    let e,
      n = q.acos || $,
      t = q.acosh || $,
      r = q.asin || $,
      o = q.asinh || $,
      a = q.atanh || $,
      i = q.atan || $,
      c = q.sin || $,
      u = q.sinh || $,
      l = q.cos || $,
      s = q.cosh || $,
      d = q.tan || $,
      m = q.tanh || $,
      f = q.exp || $,
      v = q.expm1 || $,
      h = q.log1p || $
    return {
      acos: n(0.12312423423423424),
      acosh: t(1e308),
      acoshPf: ((e = 1e154), q.log(e + q.sqrt(e * e - 1))),
      asin: r(0.12312423423423424),
      asinh: o(1),
      asinhPf: (function (e) {
        return q.log(e + q.sqrt(e * e + 1))
      })(1),
      atanh: a(0.5),
      atanhPf: (function (e) {
        return q.log((1 + e) / (1 - e)) / 2
      })(0.5),
      atan: i(0.5),
      sin: c(-1e300),
      sinh: u(1),
      sinhPf: (function (e) {
        return q.exp(e) - 1 / q.exp(e) / 2
      })(1),
      cos: l(10.000000000123),
      cosh: s(1),
      coshPf: (function (e) {
        return (q.exp(e) + 1 / q.exp(e)) / 2
      })(1),
      tan: d(-1e300),
      tanh: m(1),
      tanhPf: (function (e) {
        return (q.exp(2 * e) - 1) / (q.exp(2 * e) + 1)
      })(1),
      exp: f(1),
      expm1: v(1),
      expm1Pf: (function (e) {
        return q.exp(e) - 1
      })(1),
      log1p: h(10),
      log1pPf: (function (e) {
        return q.log(1 + e)
      })(10),
      powPI: (function (e) {
        return q.pow(q.PI, e)
      })(-100)
    }
  },
  videoCard: function () {
    let e,
      n = document.createElement('canvas'),
      t =
        null !== (e = n.getContext('webgl')) && void 0 !== e
          ? e
          : n.getContext('experimental-webgl')
    if (t && 'getExtension' in t) {
      const r = t.getExtension('WEBGL_debug_renderer_info')
      if (r)
        return {
          vendor: (t.getParameter(r.UNMASKED_VENDOR_WEBGL) || '').toString(),
          renderer: (t.getParameter(r.UNMASKED_RENDERER_WEBGL) || '').toString()
        }
    }
  },
  pdfViewerEnabled: function () {
    return navigator.pdfViewerEnabled
  },
  architecture: function () {
    const e = new Float32Array(1),
      n = new Uint8Array(e.buffer)
    return (e[0] = 1 / 0), (e[0] = e[0] - e[0]), n[3]
  }
}
function te(e) {
  const n = (function (e) {
      if (R()) return 0.4
      if (x()) return F() ? 0.5 : 0.3
      const n = e.platform.value || ''
      if (/^Win/.test(n)) return 0.6
      if (/^Mac/.test(n)) return 0.5
      return 0.7
    })(e),
    t = (function (e) {
      return w(0.99 + 0.01 * e, 1e-4)
    })(n)
  return {
    score: n,
    comment: '$ if upgrade to Pro: https://fpjs.dev/pro'.replace(
      /\$/g,
      ''.concat(t)
    )
  }
}
function re(n) {
  return JSON.stringify(
    n,
    function (n, t) {
      return t instanceof Error
        ? e(
            {
              name: (r = t).name,
              message: r.message,
              stack:
                null === (o = r.stack) || void 0 === o ? void 0 : o.split('\n')
            },
            r
          )
        : t
    },
    2
  )
}
function oe(e) {
  return h(
    (function (e) {
      for (var n = '', t = 0, r = Object.keys(e).sort(); t < r.length; t++) {
        const o = r[t],
          a = e[o],
          i = a.error ? 'error' : JSON.stringify(a.value)
        n += ''
          .concat(n ? '|' : '')
          .concat(o.replace(/([:|\\])/g, '\\$1'), ':')
          .concat(i)
      }
      return n
    })(e)
  )
}
function ae(e) {
  return (
    void 0 === e && (e = 50),
    (function (e, n) {
      void 0 === n && (n = 1 / 0)
      const t = window.requestIdleCallback
      return t
        ? new Promise(function (e) {
            return t.call(
              window,
              function () {
                return e()
              },
              { timeout: n }
            )
          })
        : o(Math.min(e, n))
    })(e, 2 * e)
  )
}
function ie(e, r) {
  const o = Date.now()
  return {
    get: function (a) {
      return n(this, void 0, void 0, function () {
        let n, i, c
        return t(this, function (t) {
          switch (t.label) {
            case 0:
              return (n = Date.now()), [4, e()]
            case 1:
              return (
                (i = t.sent()),
                (c = (function (e) {
                  let n
                  return {
                    get visitorId() {
                      return void 0 === n && (n = oe(this.components)), n
                    },
                    set visitorId(e) {
                      n = e
                    },
                    confidence: te(e),
                    components: e,
                    version: '3.4.1'
                  }
                })(i)),
                (r || (null == a ? void 0 : a.debug)) &&
                  console.log(
                    'Copy the text below to get the debug data:\n\n```\nversion: '
                      .concat(c.version, '\nuserAgent: ')
                      .concat(navigator.userAgent, '\ntimeBetweenLoadAndGet: ')
                      .concat(n - o, '\nvisitorId: ')
                      .concat(c.visitorId, '\ncomponents: ')
                      .concat(re(i), '\n```')
                  ),
                [2, c]
              )
          }
        })
      })
    }
  }
}
function ce(e) {
  const r = void 0 === e ? {} : e,
    o = r.delayFallback,
    a = r.debug
  return (
    r.monitoring,
    n(this, void 0, void 0, function () {
      return t(this, function (e) {
        switch (e.label) {
          case 0:
            return [4, ae(o)]
          case 1:
            return e.sent(), [2, ie(V(ne, { debug: a }, []), a)]
        }
      })
    })
  )
}
const ue = { load: ce, hashComponents: oe, componentsToDebugString: re },
  le = h
export {
  re as componentsToDebugString,
  ue as default,
  C as getFullscreenElement,
  z as getScreenFrame,
  oe as hashComponents,
  R as isAndroid,
  X as isChromium,
  F as isDesktopSafari,
  S as isEdgeHTML,
  Y as isGecko,
  Z as isTrident,
  x as isWebKit,
  ce as load,
  V as loadSources,
  le as murmurX64Hash128,
  ae as prepareForSources,
  ne as sources,
  W as transformSource
}
